Method and apparatus for improving bus utilization

ABSTRACT

Embodiments of a method and apparatus for improving bus utilization, such as for transferring data to a modem, for example, are described.

BACKGROUND

This disclosure is related to a method and/or apparatus for improvingbus utilization where a modem, such as a digital subscriber line (DSL)modem, is employed.

Devices that handle, store, display, route and/or process information,such as computers or other computing devices, for example, may transmitand/or receive data or other information in a packet format, such asbetween itself and other computing devices or computing platforms, overor via a network, such as a telecommunications network. A computingdevice or other computing platform may include a processor and memory.Such a device may in at least some cases be coupled via a local bus to amodem.

A modem may comprise any device that modulates and/or demodulates data,examples of which include, but are not limited to, an analog modem, acable modem, or a digital subscriber line (DSL) modem. Modems may beused to process data and/or other types of information transmittedand/or received via a network. Likewise, one example of a local bus orcommunications link may include a high-speed connection, such as a localbus or communications link that complies with the Universal Serial Bus(USB) Specification, version 1.1, published September 1998, hereinafterreferred to as a USB compliant bus, USB compliant local bus, or simply auniversal serial bus or USB.

A computing device or platform, such as previously described, if coupledto a network, such as via a modem, for example, may comprise a node onthe network. Such a network may include a plurality of interconnectednodes, and, therefore, may comprise, for example, without limitation,nodes other than the previously mentioned computing device that maycomprise, for example, personal data assistants (PDAs), set tops boxes,peripherals, servers and/or terminals.

A computing device or platform, such as a computer, for example, maytypically include an operating system. Furthermore, code may be present,such as on the computing device, on the platform, or on the modem, thatinitializes the modem. Such code may also provide the ability totransfer data from the computing device or platform to another node onthe network via the modem. In the case of a DSL network, the rate themodem transmits and/or receives data, e.g., the transmission rate and/orthe reception rate, sometimes referred to as the data rate, may be set,at least in part, by a DSL central office (CO). The DSL CO is typicallycoupled to the modem via the network. The CO will typically transmit atraining signal to the DSL modem. The modem will typically process thetraining signal to then establish a data rate for the modem.

The rate at which a computing platform may transfer data to anotherdevice, such as a peripheral, for example, coupled to the platform via aUSB compliant local bus may be set, at least in part, based oninitialization of the modem. During such modem initialization, thecomputing platform may allocate or open a channel or pipe via the USBcompliant bus to the peripheral, for example, or to another USBcompliant device, and transfer data over the channel using acommunication method such as, for example, described in theaforementioned USB specification. A channel is defined in the USBspecification as the number of packets being transferred per millisecondbetween the computing device or platform and a USB compliant device. Incircumstances where a DSL modem operates as a USB compliant device orUSB device, the computing device or platform may employ one of at leasttwo communications techniques to execute data transfers to the DSL modemat 8 Mbs or higher. One such USB communications technique is known as“Bulk USB” and the other technique is known as isochronous (ISO) USB.The maximum data transfer rate with these techniques is limited by thetheoretical maximum bandwidth of the USB compliant bus and theimplementation specific details associated with the aforementionedoperating system and modem driver software. According to USBspecification version 1.1, the maximum data transfer rate of a singlechannel or pipe is approximately 10 Mbits/sec.

For Bulk USB, a USB channel is not pre-allocated to any particular USBdevice and may be shared equally among the available or coupled USBdevices. However, the maximum data throughput rate of devices using BulkUSB may be dependent, at least in part, on the ability of the operatingsystem to respond in real time to the particular USB devices. Thus, thedata rate between the platform and the DSL modem may be limited whenmany USB devices are coupled to the platform.

With ISO USB, the USB bandwidth may be pre-allocated to a coupled USBdevice by the computing platform upon initialization of the modem.However, bandwidth pre-allocation may present problems if other USBdevices are also coupled via the USB compliant bus. Specifically, DSLmodems may transfer data at a high data rate and may employ a highbandwidth. Thus, the modem may utilize a large percentage of the totalbandwidth available. If USB devices are coupled to the USB compliantwhen it is oversubscribed (e.g. the USB devices coupled to the USBcompliant bus exceed the available bandwidth), the platform may notallow these other devices to be installed on the bus. Likewise, it mayalso detrimentally impact the performance of a USB device coupled to thebus that employs Bulk USB, e.g., a Bulk USB device, if a high bandwidthISO USB device is also coupled to the bus.

BRIEF DESCRIPTION OF THE DRAWINGS

Subject matter is particularly pointed out and distinctly claimed in theconcluding portion of the specification. The claimed subject matter,however, both as to organization and method of operation, together withobjects, features, and appendages thereof, may best be understood byreference of the following detailed description when read with theaccompanying drawing in which:

FIG. 1 is a block diagram illustrating one embodiment of a system inaccordance with the claimed subject matter; and

FIG. 2 is a flow diagram illustrating one embodiment of a method inaccordance with the claimed subject matter.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of the claimedsubject matter. However, it will be understood by those skilled in theart that the claimed subject matter may be practiced without thesespecific details. In other instances, well-known methods, procedures,components and circuits have not been described in detail in order so asnot to obscure the claimed subject matter.

Although the claimed subject matter is not limited in scope in thisrespect, FIG. 1 illustrates an embodiment 10 of a system. System 10includes a computing device or platform 12 coupled via a USB compliantbus 14 to a modem 16. Computing platform 12 may comprise, withoutlimitation, any device, machine, computer or other computing device thathandles, stores, displays, routes, and/or processes information and/ordata. Modem 16 may be coupled via network media 17 to a DSL accessmultiplexer (DSLAM) in a central office (not shown), although, theclaimed subject matter is not limited in scope in this respect. Networkmedia 17, the medium employed for transferring the data, comprises, butis not limited to, optical fiber cables, coaxial cables, and/or twistedpair copper wires. Of course, the data may also be transferred using awireless medium as well, such as radio waves, for example. Although theclaimed subject matter is not limited in scope in this respect, for thepurposes of this embodiment, it will be assumed modem 16 may compriseany type of modem, such as an analog modem, a digital modem, a cablemodem or a DSL modem, for example.

Computing platform 12 may include a USB compliant interface or USBinterface 18 and memory 20. Memory 20 may comprise data, such as to betransferred, as well as program code 22. USB interface 18 may includecode and hardware that provide the capability to couple program code 22with USB 14. Examples of such program code 22 may include an operatingsystem, driver code, and/or DSL transceiver code. Platform 12 in thisembodiment executes program code 22 having instructions stored in memory20 that produce the functionality described hereinafter. Although a USBcompliant bus 14 here couples platform 12 to modem 16, it is understoodthat this bus may comprise any bus having a data rate allocatedspecifically to modem 16.

Although the claimed subject matter is not limited in scope in thisrespect, modem 16 may comprise transceiver 26, such as, for example, aDSL transceiver, coupled to USB controller 28. Transceiver 26 hereincludes any device for transmitting and receiving signals via a networkmedia, communications line or a communications network. One example,without limitation, of course, of such a transceiver includes partnumber GS7070 manufactured by Globespan Virata (formerly Globespan Inc.)of Red Bank, N.J. Controller 28 may include a computational device suchas, but not limited to, a state machine, a digital signal processor, anarithmetic logic unit (ALU) or a processor that conducts arithmeticand/or logical computations. An example of controller 28, again withoutlimitation, may include part number AN2131QC manufactured by CypressSemiconductor of San Jose, Calif.

Although shown in FIG. 1 separate from platform 12, for example, modem16 may instead be contained within platform 12 and coupled to a buswithin the platform. Likewise, modem 16 may comprise a single integratedcircuit (IC), multiple ICs or may be integrated into circuitry withinplatform 12. Modem 16 transfers data in packet form to and from networkmedia 17 in this particular embodiment.

Although the claimed subject matter is not limited in scope in thisrespect, FIG. 2 illustrates one embodiment of a method 100 for improvingbus utilization. Platform 12 by executing program code 22, such as maybe included in an operating system, for example, may initiate theexecution of method 100 by a program call, although, again, the claimedsubject matter is not limited in scope in this respect.

In block 102, a platform, such as 12, executing program code, such as,but not limited to, driver code, such as 22, for example, may open a USBisochroous (ISO) channel to modem, such as 16, for example. Such a USBISO channel may be open, for example, with an initial USB data rateallocated to modem 16. On an initial execution of the program code, forexample, the initial data rate may be set to a specified maximum ISOdata rate available for a USB channel. This initial ISO data rate willherein be referred to as the “initial data rate.” In one embodiment,although the claimed subject matter is not limited in scope in thisrespect, a registry table may be provided in memory, such as on theplatform, listing the possible data rates for different DSLAMimplementations along with corresponding USB settings for these DSLAMimplementations. The initial data rate may be taken from this table inthis particular embodiment, although, the claimed subject matter is notlimited in scope in this respect. In block 104, the platform may trainthe communications data rate of the modem at the initial rate.

Here, although again, the claimed subject matter is not limited in scopein this respect, this table may include an upper and a lower limit oftrained rates capable of being supported. The table may be configured totake into account various properties, including the DSLAM employed, suchas vendor, model, etc., and the mode of the DSL connection, such as fastor interleaved, for example. Thus, in this particular embodiment, theplatform is able to select a value from the table corresponding to, forexample, a vendor of the DSLAM, a framing mode of the modem, etc.

In addition to obtaining a rate from a table, the platform may alsoattempt to determine an appropriate or feasible rate based onmeasurements. Although the claimed subject matter is not limited inscope in this respect, in block 103, a platform, such as 12, maydetermine a modem rate by sending a signal to the central office via USB14 and modem 16. Typically, this may be accomplished by modem 16 sendinga signal to the central office via network 17 requesting establishmentof a connection. Here, of course, the term “connection” refers tomutually operational communication between the central office and theplatform, in this embodiment. In response thereto, the central officemay send a training signal to modem 16. Modem 16 and the central officemay detect each other's signals and exchange operational information.Modem 16 may use this operational information and the training signal todetermine a rate at which modem 16 may transmit and receive data vianetwork 17. Typically, it is desirable that the rate be as high aspotentially feasible. This rate is referred to herein as the “networkcommunications data transfer rate”, or “communications data rate.” It isnoted that although block 103 is illustrated in FIG. 2 between blocks102 and 104, it is not necessary that these blocks necessarily occur inthis particular order to be within the scope of the claimed subjectmatter.

In block 105, the platform detects whether the communications data rateis equal to the initial data rate of the USB ISO channel. If thecommunications data rate is equal to the initial data rate of the USBISO channel, the data rate of the USB ISO channel and current modem rateis not changed, and method 100 ends, in this particular embodiment. Ofcourse, alternative embodiments may then go on to provide additional oralternative features.

Likewise, if the communications rate is not equal to the initial datarate of the USB ISO channel, in block 106, a determination may be madewhether the communications rate exceeds the bandwidth of the USB ISOchannel, here the data rate of the available USB. The data rate of theavailable USB is the maximum rate that data can be transferred over theUSB between the platform and the modem, for this embodiment. If thecommunications data rate is not greater than the data rate of the USBISO channel, a platform, such as 12, may then automatically reduce theinitial data rate, if appropriate, so that the bandwidth of the openedUSB ISO channel does not exceed the limitation of available USBbandwidth (inclusive of bandwidth allocated to other peripherals on theUSB). In block 108, for example, the data rate of the USB channel may bereduced to match the communications data rate in order to conservebandwidth.

If the communications rate is greater than the available USB rate, inblock 112, platform 12 may attempt to open the largest USB channelpossible for this embodiment to support the communications data rate soas to reduce the impact on performance to the extent possible. It isnoted, however, for a variety of reasons, such as bandwidthconsiderations, rather than open the largest USB channel, instead, alarger USB channel may be open that is less than the largest USBchannel, and then, depending on the embodiment and situation,potentially adjusted further. For example, the current data rate of theUSB channel for modem 16 may be set to a larger isochronous data ratesubject to the limitation of available USB bandwidth (inclusive ofbandwidth allocated to other peripherals on the USB). As previouslyindicated, for this embodiment, isochroous data rates may be selectedfrom a table stored in memory. This table may list possible USBisochronous data rates corresponding to the vendor of the DSLAMcommunicating with the modem, a framing mode of the modem, etc., aspreviously described; the platform may not successfully open the largestor maximum USB channel based on the rate from the table, for thisparticular embodiment, that is.

In block 116, platform 12 executing program code, such as 22, forexample, may determine if the USB ISO channel has been opened to supportcommunications data rate. If the USB ISO channel has not been opened tosupport the communications data rate, in block 110, the current datarate of the USB ISO channel may be reduced to a smaller USB channel,such as the next smaller USB isochronous data rate available assupported by modem 16, in the particular embodiment. If the USB ISOchannel is successfully opened, in block 120, platform 12 may provide anindication signal to the modem 16 via USB 14 to change (e.g. retrain)the data rate that modem 16 transfers data via the network 17. In block122, platform 12 stores the data rate of the current USB ISO channel.

It will, of course, be understood that, although particular embodimentshave just been described, the claimed subject matter is not limited inscope to a particular embodiment or implementation. For example, oneembodiment may be in hardware, whereas another embodiment may be insoftware. Likewise, an embodiment may be in firmware, or any combinationof hardware, software, or firmware, for example. Furthermore, althoughthe claimed subject matter is not limited in scope in this respect, oneembodiment may comprise an article, such as a storage medium. Such astorage medium, such as, for example, a CD-ROM, or a disk, may havestored thereon instructions, which when executed by a system, such as acomputer system or platform, or an imaging system, for example, mayresult in an embodiment of a method in accordance with the claimedsubject matter being executed, such as an embodiment of a method ofimproved bus utilization, for example, as previously described.

While certain features of the claimed subject matter have beenillustrated and described herein, many modifications, substitutions,changes and equivalents will now occur to those skilled in the art. Itis, therefore, to be understood that the appended claims are intended tocover all such modifications and changes as fall within the true spiritof the invention.

1-22. (canceled)
 23. A system, comprising: a computing platform, saidcomputing platform coupled to a modem via a bus and said modem coupledto a central office via a network, said modem to receive a trainingsignal and operational information from the central office, said modemto use the training signal and the operational information to determinea network communications data transfer rate at which the modem maytransmit and receive data via the network and said computing platform toadjust a data rate of the bus based at least in part upon the networkcommunications data transfer rate.
 24. The system of claim 23, whereinthe data rate of the bus comprises an isochronous data rate.
 25. Thesystem of claim 23, wherein a connection between the modem and thenetwork comprises a digital subscriber line (DSL) connection.
 26. Thesystem of claim 23, wherein the bus comprises a universal serial bus(USB).
 27. The system of claim 23, wherein said computing platform toset the data rate of the bus to an initial value and said computingplatform to reduce the data rate of the bus if the networkcommunications data transfer rate is less than the initial value. 28.The system of claim 23, wherein said computing platform to set the datarate of the bus to an initial value and said computing platform to raisethe data rate of the bus if the network communications data transferrate is greater than the initial value.
 29. A method, comprising:receiving by a modem a training signal and operational information froma central office; using the training signal and the operationalinformation to determine a network communications data transfer rate atwhich the modem may transmit and receive data via a network; andadjusting a data rate of a bus based at least in part upon the networkcommunications data transfer rate.
 30. The method of claim 29, whereinthe data rate of the bus comprises an isochronous data rate.
 31. Themethod of claim 29, wherein a connection between the modem and thenetwork comprises a digital subscriber line (DSL) connection.
 32. Themethod of claim 29, wherein the bus comprises a universal serial bus(USB).
 33. The method of claim 29, wherein said adjusting the data rateof the bus based at least in part upon the network communications datatransfer rate comprises reducing the data rate of the bus if the networkcommunications data transfer rate is less than an initial value for thedata rate of the bus.
 34. The method of claim 29, wherein said adjustingthe data rate of the bus based at least in part upon the networkcommunications data transfer rate comprises increasing the data rate ofthe bus if the network communications data transfer rate is more than aninitial value for the data rate of the bus.
 35. An article comprising amachine-readable storage medium containing instructions that if executedenable a system to receive by a modem a training signal and operationalinformation from a central office; use the training signal and theoperational information to determine a network communications datatransfer rate at which the modem may transmit and receive data via anetwork; and adjust a data rate of a bus based at least in part upon thenetwork communications data transfer rate.
 36. The article of claim 35,wherein the data rate of the bus comprises an isochronous data rate. 37.The article of claim 35, wherein a connection between the modem and thenetwork comprises a digital subscriber line (DSL) connection.
 38. Thearticle of claim 35, wherein the bus comprises a universal serial bus(USB).
 39. The article of claim 35, wherein said adjusting the data rateof the bus based at least in part upon the network communications datatransfer rate comprises reducing the data rate of the bus if the networkcommunications data transfer rate is less than an initial value for thedata rate of the bus.
 40. The article of claim 35, wherein saidadjusting the data rate of the bus based at least in part upon thenetwork communications data transfer rate comprises increasing the datarate of the bus if the network communications data transfer rate is morethan an initial value for the data rate of the bus.